package com.dongdong.utils;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ExcelUtil {
	// 判断每一个单元格里的内容类型
	public static Object parseExcel(Cell cell) {
		// String result = null;
		Object result = null;
		switch (cell.getCellType()) {
		case HSSFCell.CELL_TYPE_NUMERIC:// 判断单元格的值是否为数字类型
			if (HSSFDateUtil.isCellDateFormatted(cell)) {// 处理日期格式、时间格式
				Date date = cell.getDateCellValue();
				// result = sdf.format(date);
				result = date;
			} else if (cell.getCellStyle().getDataFormat() == 58) {
				// yyyy-MM-dd----- 14
				// yyyy年m月d日--- 31
				// yyyy年m月------- 57
				// m月d日 ---------- 58
				// HH:mm----------- 20
				// h时mm分 ------- 32
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
				double value = cell.getNumericCellValue();
				Date date = org.apache.poi.ss.usermodel.DateUtil.getJavaDate(value);
				result = date;
			} else {
				double value = cell.getNumericCellValue();
				CellStyle style = cell.getCellStyle();
				DecimalFormat format = new DecimalFormat();
				String temp = style.getDataFormatString();
				// 单元格设置成常规
				if (temp.equals("General")) {
					format.applyPattern("#");
				}
				result = value;
			}
			break;
		case HSSFCell.CELL_TYPE_STRING:// 判断单元格的值是否为String类型
			result = cell.getRichStringCellValue().toString();
			break;
		case HSSFCell.CELL_TYPE_BLANK:// 判断单元格的值是否为空值
			result = "";
		default:
			result = "";
			break;
		}
		return result;
	}
}

